<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /*
      可以买卖多次，但是每次都需要一笔手续费
      定义两个状态 1表示当前持有股票，2表示当前不持有股票

      ②状态转移方程：
      dp[i][1]=Math.max(dp[i-1][1],dp[i-1][2]-prices[i-1])
      dp[i][2]=Math.max(dp[i-1][2],dp[i-1][1]+prices[i-1]-fee)
      */
      var maxProfit = function (prices, fee) {
        let dp = new Array(prices.length + 1).fill().map(() => new Array(3).fill(0))
        dp[0][1] = -prices[0]
        for (let i = 1; i < dp.length; i++) {
          dp[i][1] = Math.max(dp[i - 1][1], dp[i - 1][2] - prices[i - 1])
          dp[i][2] = Math.max(dp[i - 1][2], dp[i - 1][1] + prices[i - 1] - fee)
        }
        return dp[dp.length][2]
      }
      maxProfit([1, 3, 2, 8, 4, 9], 2)
    </script>
  </body>
</html>
